Key transposition

ABSTRACT

Embodiments of the present invention provide methods, computer program products, and systems to for automatic key transposition. Embodiments of the present invention can be used to determine compatibility between a known melody capable of being generated by a pitch generation system and a first performance profile associated with a first performer that performs in conjunction with the pitch generation system. Embodiments of the present invention can be further used to determine an appropriate key to update one or more pitches associated with the known melody, to be generated by the pitch generation system during the performance by the first performer, based on the compatibility between the first performance profile and the known melody.

BACKGROUND

The present invention relates generally to the field of pitch adjustmentand more particularly to automatic key transposition.

Generally, pitch adjustment refers to a sound recording technique inwhich the original pitch of a sound is raised or lowered. Typically,effects programs raise or lower pitch by a pre-designated musicalinterval (i.e., a transposition). Typically, musicians who accompany avocalist (e.g., a pianist) may transpose a piece of music in a higher orlower key to complement the vocalist's voice. In some cases, a singermay elect to sing in a higher or lower key to accommodate the playingability of an accompanist.

SUMMARY

Embodiments of the present invention provide methods, computer programproducts, and systems to for automatic key transposition. In oneembodiment of the present invention, a computer-implemented method isprovided comprising: determining compatibility between a known melodycapable of being generated by a pitch generation system and a firstperformance profile associated with a first performer that performs inconjunction with the pitch generation system; and determining anappropriate key to update one or more pitches associated with the knownmelody, to be generated by the pitch generation system during theperformance by the first performer, based on the compatibility betweenthe first performance profile and the known melody.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computing environment, in accordance withan embodiment of the present invention;

FIG. 2 is a block diagram showing a machine logic (for example,software) portion, in accordance with an embodiment of the presentinvention;

FIG. 3 is a flowchart illustrating operational steps for performing akey change, in accordance with an embodiment of the present invention;

FIG. 4 is a flowchart illustrating operational steps for transposingbased, at least in part on an identified melody and user profile, inaccordance with an embodiment of the present invention; and

FIG. 5 is a block diagram of internal and external components of thecomputer systems of FIG. 1, in accordance with an embodiment of thepresent invention.

DETAILED DESCRIPTION

Embodiments of the present invention recognize the need for keytransposition. Currently, a musician has to either manually transposemusic or press a series of buttons (e.g., on an electric keyboard) tofind a key that is compatible with a vocalist's range. Embodiments ofthe present invention provide solutions for automatic key transpositionbased, at least in part, on the melody of the song and compatibilitywith a vocalist's pitch. In this manner, as described in greater detaillater in this specification, embodiments of the present invention canidentify the melody of a song, and based on the song's profile and thevocalist's range automatically transpose music into the complimentarykey for the vocalist.

FIG. 1 is a functional block diagram of computing environment 100, inaccordance with an embodiment of the present invention. Computingenvironment 100 includes computer system 102 and pitch generation system108. Computer system 102 and pitch generation system 108 can be desktopcomputers, laptop computers, specialized computer servers, or any othercomputer systems known in the art. In certain embodiments, computersystem 102 and pitch generation system 108 represent computer systemsutilizing clustered computers and components to act as a single pool ofseamless resources when accessed through network 106. For example, suchembodiments may be used in data center, cloud computing, storage areanetwork (SAN), and network attached storage (NAS) applications. Incertain embodiments, computer system 102 and pitch generation system 108represent virtual machines. In general, computer system 102 and pitchgeneration system 108 are representative of any electronic devices, orcombination of electronic devices, capable of executing machine-readableprogram instructions, as described in greater detail with regard to FIG.5.

Computer system 102 includes transposing program 104. Transposingprogram 104 communicates with pitch generation system 108 via network106 (e.g., using TCP/IP) to perform key changes based at least in parton an identified melody and compatibility to a vocalist, as discussed ingreater detail with regards to FIGS. 2-4. For example, transposingprogram 104 can receive a request to perform a key change and identify amelody from an audio source. Transposing program 104 can then identify asong associated with the melody and retrieve a default key associatedwith the song. Transposing program 104 can then determine compatibilitybetween a vocalist's pitch and the default key associated with theidentified song. Responsive to determining that the vocalist's pitch andthe default key are incompatible, transposing program 104 can transposeto the appropriate key compatible with the vocalist's pitch.

Network 106 can be, for example, a local area network (LAN), a wide areanetwork (WAN) such as the Internet, or a combination of the two, andinclude wired, wireless, or fiber optic connections. In general, network106 can be any combination of connections and protocols that willsupport communications between computer system 102 and pitch generationsystem 108, in accordance with a desired embodiment of the invention.

Pitch generation system 108 generates one or more tones in a sequencethat forms a melody. Pitch generation system 108 can be implemented withany suitable program that is compatible with transposing program 104that can generate a melody. For example, pitch generation system 108 canbe implemented with any audio source capable of generating sound. Insome embodiments, pitch generation system 108 can be an electricalkeyboard. In other embodiments, pitch generation system 108 can have adatabase of audio files that can be selected. In yet other embodiments,pitch generation system 108 can be coupled to a microphone and receiveinput from a vocalist (e.g., an audio sample of a vocalist's voice).

It should be understood that, for illustrative purposes, FIG. 1 showstransposing program 104 and pitch generation system 108 as residing ondifferent systems. However, it should be understood that transposingprogram 104 and pitch generation system 108 can reside on the samesystem. Furthermore, it should be understood that for illustrativepurposes, FIG. 1 does not show other computer systems and elements whichmay be present when implementing embodiments of the present invention.For example, while FIG. 1 shows a single computer system 102 and asingle pitch generation system 108, computing environment 100 can alsoinclude additional computer systems 102 and pitch generation systems 108that use transposing program 104 to automatically transpose keys basedon an identified melody and compatibility to a vocalist's profile.

FIG. 2 is a block diagram showing a machine logic (for example,software) portion, in accordance with an embodiment of the presentinvention.

Transposing program 104 includes input/output module 202, audiorecognition module 204, transposition module 206, and performanceprofile(s) 208. Input/output module 202 receives inputs from one or morecomponents of computing environment 100 and transmits outputs fromtransposition module 206. In this embodiment, an input may be a requestto perform a key change. An input may also be a collection of notesand/or tones that form a melody from which a song and its associateddefault key can be identified.

Audio recognition module 204 receives input (e.g., a collection of notesand/or tones) and identifies melodies and associated songs with theidentified melodies based, at least in part on the received collectionof notes and/or tones. In some instances, the collection of notes and/ortones may be a few notes played audibly. In other instances, thecollections of notes from which a melody can be identified may be from asampling of a vocalist's voice. Audio recognition module 204 can furtherretrieve default keys associated with the identified songs.

Transposition module 206 transposes to keys compatible with a user'svoice. Where the appropriate key is known (i.e., a regular transposeevent), transposition module 206 can, responsive to receiving theappropriate key (e.g., from a user input), invoke standard key changelogic to change to the appropriate key. For example, responsive toreceiving a request to change keys where the appropriate key is known,transposition module 206 can display a list of keys that can be selected(e.g., by a user), as discussed in greater detail below. In otherembodiments, transposition module 206 may automatically transpose to akey within a user's performance profile.

In instances where the appropriate key is not known (i.e., an irregulartranspose event), transposition module 206 can receive output from audiorecognition module 204 (e.g., identified melodies and associated songs)and determine compatibility between a vocalist's pitch and the defaultkey associated with the identified song. In this embodiment,transposition module 206 can determine compatibility between avocalist's pitch and the default key associated with the identified songas by standard methods (or unknown methods) known in the art. Forexample, transposition module 206 can receive an audio sample of thevocalist's voice and determine the compatibility of the vocalist's pitchand the default key associated with the identified song. Responsive todetermining that the vocalist's pitch and the default key areincompatible, transposing program 104 can transpose to the appropriatekey compatible with the vocalist's pitch.

Performance profile(s) 208 refers to a collection of performers'profiles. A “performance profile” as used herein, refers to a range ofpitches that a performer is capable of producing. In this embodiment, aperformer is a vocalist. In instances where the performer is a vocalist,the performer's profile associated with the vocalist includes a list ofsongs and the key in which the song needs to be performed in for thevocalist. In this embodiment, performance profiles are based on priorinputs received from performers which can be used to determine the rangeof pitches attainable to the specific performer. For example, ininstances where the performance profile is created for a vocalist, theperformance profile can indicate that the vocalist is comfortable withthe Key of C, that the vocalist can hit the higher notes of a key aboveC but struggles with the lower notes of that key. In other embodiments,the performance profile can be created for other instrumentalists (e.g.,trumpeters) as other instrumentalists can experience similar range/keylimitations as a vocalist.

Performance profile(s) 208 can be accessed by transposition module 206to determine compatibility with an identified song. For example, where asong is played in the Key of D, transposition module 206 can retrievethe vocalist's performance profile and identify that the vocalist iscapable of singing all portions of the song in the Key of B flat (amajor third down). Responsive to determining that the vocalist'sperformance profile is incompatible with the default key of the song,transposition module 206 can transpose the key of the song to B flat.Accordingly, a user (e.g., a musician accompanying the vocalist) canplay in the appropriate key to complement the vocalist's range.

In other embodiments, transposition module 206 can access performanceprofile(s) 208 and display a list of keys that is within the performer's(e.g., the vocalist) range of pitches. In some instances, this manualselection of keys that is within the performer's range of pitches may bedesirable to enable the user to select a preferable key based on contextinformation corresponding to the composition that may not be availableto the software. For example, a performer may realize that, with respectto a particular song, the key of A sits in a slightly less comfortableregister than the key of G, but a certain sequence of notes in the songis much easier to perform in A than G. The performer may thereforeprefer the key of A in this instance. Accordingly, the user may selectthe key of A to accompany the performer.

FIG. 3 is a flowchart illustrating operational steps for performing akey change, in accordance with an embodiment of the present invention.

In step 302, transposition module 206 receives a request for a keychange. In this embodiment, transposition module 206 receives a requestfor a key change from a user of computer system 102. In otherembodiments, transposition module 206 can receive a request for a keychange from one or more other components of computing environment 100.

In step 304, transposition module 206 determines an appropriate keybased, at least in part, on one or more of an identified melody andperformance profiles. In this embodiment, transposition module 206determines an appropriate key to change to by accessing performanceprofile(s) 208, identifying a vocalist's range based on the vocalist'sperformance profile, and comparing the vocalist's performance profile tothe default key of the identified melody, as discussed in greater detailwith regard to FIG. 4.

In step 306, input/output module 202 returns the appropriate key topitch generation system 108. In this embodiment, input/output module 202returns the appropriate key to pitch generation system 108 via network106. For example, where transposition module 206 determines that theperformer's performance profile is incompatible with the identified songand default key associated with the identified song, transpositionmodule 206 can transpose to the appropriate key. Input/output module 202can then transmit the appropriate key to pitch generation system 108.

Accordingly, the user can play in the appropriate key to accompany thevocalist regardless of the key the user is actually playing. Forexample, the user can have sheet music for a song that is played in theKey of D. Where transposition module 206 has determined the appropriatekey to accompany the vocalist is B flat, pitch generation system 108 cangenerate pitches in the Key of B flat despite the user playing in theKey of D thereby enabling the user of pitch generation system 108 tocomplement the vocalist without having to manually transpose the sheetmusic.

In other embodiments, input/output module 202 can transmit anotification to other pitch generation systems connected to network 106that pitch generation system 108 is changing to a different key.Accordingly, responsive to receiving a notification that pitchgeneration system 108 is changing keys, other pitch generation systemsconnected to network 106 can adjust to the appropriate key to matchpitch generation system 108.

FIG. 4 is a flowchart illustrating operational steps for transposingbased, at least in part on an identified melody and user profile, inaccordance with an embodiment of the present invention. For example, theoperational steps of flowchart 400 can be performed at step 304 offlowchart 300.

In step 402, transposition module 206 determines an irregular transposeevent. A transpose event as used herein, refers to a request to possiblytranspose from one key to a higher or lower key. A “regular” transposeevent as used herein, refers to a request to transpose from one knownkey, to another known key. For example, a regular transpose even canoccur in instances where a song's default key is known (e.g., Key of D)and the desired key (e.g., Key of B flat) is known.

An “irregular” transpose event as used herein, refers to a request totranspose from a known or unknown key to another, unknown key. Forexample, an irregular transpose event can occur in instances where theuser may know a few notes associated with a melody of a song but may notknow a vocalist's range and whether or not the vocalist's range iscompatible with the default key of the song. In this embodiment,transposition module 206 determines that there is an irregular transposeevent from user input. For example, the user can specify that he or shedoes not know the default key of the song. In another example, the usercan specify that he or she only knows the melody of the song. In anotherexample, the user may specify that he or she does not know thevocalist's range. Accordingly, the user can prompt the vocalist to singa few notes of the melody of the song.

In step 404, audio recognition module 204 identifies a melody and songassociated with the identified melody. In this embodiment, audiorecognition module 204 identifies a melody and a song associated withthe identified melody from a brief sample of audio (e.g., a vocalistsinging or from a collection of notes played from an audio source) andcompares the brief sample of audio to a central database to find amatch. Accordingly, audio recognition module 204 can transmit itsresults (e.g., the identified melody and song) to transposition module206.

In step 406, transposition module 206 determines whether a performanceprofile exists. In this embodiment, transposition module 206 determinesthat a performance profile exists based, at least in part, on the user'sinput. For example, a user input may be to specify a vocalist's name. Insome instances, the user may input a sampling of the vocalist's voice.Responsive to receiving the user's input (e.g., a vocalist's name oraudio sampling of the vocalist's voice), transposition module 206 cancompare the user's input to performance profile(s) 208 and match theuser input to a respective performance profile in performance profile(s)208.

If, in step 406, transposition module 206 determines that a performanceprofile does not exist, then in step 408, transposition module 206creates a performance profile for the vocalist. In this embodiment,transposition module 206 creates a performance profile for the vocalistby recording a sampling of the vocalist's voice and determining thevocalist's range. Accordingly, logic flow continues at step 410.

If, in step 406, transposition module 206 determines that a performanceprofile does exist, then, in step 410, transposition module 206transposes to the appropriate key that is compatible with the vocalist.In this embodiment, transposition module 206 transposes to theappropriate key by determining whether the performance profile iscompatible with the default key of the identified song by comparing thekey retrieved from the performance profile with the default key of theidentified song.

For example, where a song is played in the Key of D, transpositionmodule 206 can retrieve the vocalist's performance profile and identifythat the vocalist is capable of singing the song in the Key of B flat (amajor third down). Responsive to determining that the vocalist'sperformance profile is incompatible with the default key of the song,transposition module 206 can transpose the key of the song to B flat.Input/output module 202 can then transmit the appropriate key to pitchgeneration system 108, as previously discussed with regard to step 306of flowchart 300. Accordingly, a user of transposing program 104 (e.g.,an electric keyboardist) can play in the appropriate key without havingto manually transpose keys to accompany the vocalist.

FIG. 5 is a block diagram of internal and external components of acomputer system 500, which is representative the computer systems ofFIG. 1, in accordance with an embodiment of the present invention. Itshould be appreciated that FIG. 5 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Ingeneral, the components illustrated in FIG. 5 are representative of anyelectronic device capable of executing machine-readable programinstructions. Examples of computer systems, environments, and/orconfigurations that may be represented by the components illustrated inFIG. 5 include, but are not limited to, personal computer systems,server computer systems, thin clients, thick clients, laptop computersystems, tablet computer systems, cellular telephones (e.g., smartphones), multiprocessor systems, microprocessor-based systems, networkPCs, minicomputer systems, mainframe computer systems, and distributedcloud computing environments that include any of the above systems ordevices.

Computer system 500 includes communications fabric 502, which providesfor communications between one or more processors 504, memory 506,persistent storage 508, communications unit 512, and one or moreinput/output (I/O) interfaces 514. Communications fabric 502 can beimplemented with any architecture designed for passing data and/orcontrol information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system. For example,communications fabric 502 can be implemented with one or more buses.

Memory 506 and persistent storage 508 are computer-readable storagemedia. In this embodiment, memory 506 includes random access memory(RAM) 516 and cache memory 518. In general, memory 506 can include anysuitable volatile or non-volatile computer-readable storage media.Software is stored in persistent storage 508 for execution and/or accessby one or more of the respective processors 504 via one or more memoriesof memory 506.

Persistent storage 508 may include, for example, a plurality of magnetichard disk drives. Alternatively, or in addition to magnetic hard diskdrives, persistent storage 508 can include one or more solid state harddrives, semiconductor storage devices, read-only memories (ROM),erasable programmable read-only memories (EPROM), flash memories, or anyother computer-readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 508 can also be removable. Forexample, a removable hard drive can be used for persistent storage 508.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage508.

Communications unit 512 provides for communications with other computersystems or devices via a network (e.g., network 106). In this exemplaryembodiment, communications unit 512 includes network adapters orinterfaces such as a TCP/IP adapter cards, wireless Wi-Fi interfacecards, or 3G or 4G wireless interface cards or other wired or wirelesscommunication links. The network can comprise, for example, copperwires, optical fibers, wireless transmission, routers, firewalls,switches, gateway computers and/or edge servers. Software and data usedto practice embodiments of the present invention can be downloaded tocomputer system 102 through communications unit 512 (e.g., via theInternet, a local area network or other wide area network). Fromcommunications unit 512, the software and data can be loaded ontopersistent storage 508.

One or more I/O interfaces 514 allow for input and output of data withother devices that may be connected to computer system 500. For example,I/O interface 514 can provide a connection to one or more externaldevices 520 such as a keyboard, computer mouse, touch screen, virtualkeyboard, touch pad, pointing device, or other human interface devices.External devices 520 can also include portable computer-readable storagemedia such as, for example, thumb drives, portable optical or magneticdisks, and memory cards. I/O interface 514 also connects to display 522.

Display 522 provides a mechanism to display data to a user and can be,for example, a computer monitor. Display 522 can also be an incorporateddisplay and may function as a touch screen, such as a built-in displayof a tablet computer.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer system comprising: one or morecomputer processors; one or more non-transitory computer readablestorage media; and program instructions stored on the one or morenon-transitory computer readable storage media for execution by at leastone of the one or more computer processors, the program instructionscomprising: program instructions to determine compatibility between aknown melody capable of being generated by a pitch generation system anda first performance profile associated with a first performer thatperforms in conjunction with the pitch generation system, wherein theknown melody is determined using one or more audio inputs; programinstructions to determine an appropriate key to update one or morepitches associated with the known melody, to be generated by the pitchgeneration system during the performance by the first performer, basedon the compatibility between the first performance profile and the knownmelody; program instructions to update the pitch generation system togenerate pitches associated with the appropriate key; programinstructions to receive an indication that a key change event is takingplace; program instructions to, responsive to receiving an indicationthat a key change event is taking place, transmit a notification toother pitch generation systems connected via a network that a key changeevent is taking place; program instructions to update the pitchgeneration systems connected via a network to generate pitches matchingthe appropriate key; program instructions to receive a secondperformance profile associated with a second performer; programinstructions to determine compatibility between the known melody capableof being generated by the pitch generation system and the secondperformance profile associated with the second performer that performsin conjunction with the pitch generation system; program instructionsto, responsive to determining there is not compatibility between thesecond performance profile and the known melody, determine theappropriate key to update pitches associated with the known melody, tobe generated by the pitch generation system during the performance bythe second performer; and program instructions to, provide an option toa user of the pitch generation system to update from default pitchesassociated with the known melody to the appropriate key to be generatedby the pitch generation system during the performance by the secondperformer.